package top.lixunda.ecommerce.server.user.service;

import com.baomidou.mybatisplus.extension.service.IService;
import top.lixunda.ecommerce.server.user.api.entity.db.PermissionAllotDO;
import top.lixunda.ecommerce.server.user.api.entity.dto.PermissionAllotDTO;

import java.util.List;

/**
 * <p>
 * 权限分配表，将存在的权限分配给用户，角色或者菜单 服务类
 * </p>
 *
 * @author Lixunda
 * @since 2020-04-24
 */
public interface IPermissionAllotService extends IService<PermissionAllotDO> {

    // 菜单的权限不能更改和赋予，权限赋值只能用户权限和角色权限
    // 权限分配有超级管理员进行，其他任何用户都没有操作权限

    /**
     * 分配权限
     *
     * @param list 权限操作DTO
     * @return 是否保存成功
     */
    Boolean allotPermission(List<PermissionAllotDTO> list);

    /**
     * 移除权限
     *
     * @param list 权限操作DTO
     * @return 是否移除成功
     */
    Boolean removePermission(List<PermissionAllotDTO> list);

    /**
     * 根据分配编号移除权限
     *
     * @param list 分配编号列表
     * @return 是否移除成功
     */
    Boolean removePermissionByIds(List<Integer> list);

}
